EC2上でリモート実行しているX11アプリケーションをWindowsに表示してみた
はじめに
データアナリティクス事業本部の藤川です。
クラウドを使う理由として、手軽にアプリケーションの実行環境が手に入ることだと思います。特に、ハイスペックな環境が格安に用意できることではないでしょうか。
利用用途は様々ですが、画像処理や動画編集、機械学習、もしかしたら、ビットコインマイニング等、重い処理をしたい場合には重宝します。
私がプライベートで使用しているWindows PCは非力なので、重い処理はEC2に任せています。
そこで、今回はX11アプリケーションをEC2(Amazon Linux 2)で実行し、Windowsデスクトップに画面表示する方法をご紹介したいと思います。
用意するもの
EC2インスタンスとWindows PCが必要です。
IAMアカウントは予め用意しておいてください。
- EC2インスタンス
- Windows PC
- SSHクライアント(PuTTY)
- X Server(VcXsrv)
準備
EC2(X Client)側
EC2側での準備作業は次の通りです。
- EC2インスタンスを起動
xauth
をインストール- SSHの
X11Forwarding
設定を有効化
EC2インスタンスを起動
- AWSマネジメントコンソールから
EC2インスタンスを起動
します。
ここでは、Amazon Linux 2
を使用します。 自動割り当てパブリック IP
を有効にする等、Windows PCからSSH接続できるように設定します。- キーペアファイルを忘れずにダウンロードします。
- セキュリティグループで、
SSH(22番ポート)
を開けておきます。
X11アプリケーションをインストール
xorg-x11-xauth
パッケージをインストールします。sudo yum install xorg-x11-xauth
SSHを設定変更
- /etc/ssh/sshd_configファイルを編集します。
sudo vi /etc/ssh/sshd_config
X11Forwarding
をyes
に設定します。X11Forwarding yes
sshd
を再起動します。sudo systemctl restart sshd
Windows(X Server)側
Windows PC側での準備作業は次の通りです。
- PuTTYをインストール
- キーペアファイルをPuTTY形式に変換
- SSHクライアントを設定
Enable X11 forwarding
設定を有効化
- X Server(VcXsrv)をインストールし、設定
PuTTYをインストール
PuTTY
をインストールします。- PuTTYgen を使用してプライベートキーを変換するの手順を参考に、キーペアファイルをPuTTY形式に変換します。
- 画面左側の
Category
ペインで、Connection
-SSH
-Auth
を開きます。 Private key file for authentication
のBrowse...
ボタンをクリックします。- PuTTY形式に変換したキーペアファイルを選択し、
開く
ボタンをクリックします。 - 画面左側の
Category
ペインで、Connection
-SSH
-X11
を開きます。 - 画面右側の
Enable X11 forwarding
にチェックを付けます。 - 画面左側の
Category
ペインで、Session
を開きます。 - 画面右側の
Host Name(or IP address)
とPort
にそれぞれ、ec2-user@
+EC2インスタンスのIPアドレス
とポート番号を入力します。
※ここでは、それぞれec2-user@54.xx.xx.xx
、22
と入力しています。 Saved Sessions
にEC2
などと入力します。Save
ボタンをクリックします。
X Server(VcXsrv)をインストール
- 構築方法(Windows)を参考に、
VcXsrv
をインストールし、起動しておきます。
使用方法
EC2(X Client)側
- X11アプリケーションをインストールします。
sudo yum install xeyes
Windows(X Server)側
PuTTY
を起動します。- 画面左側の
Category
ペインで、Session
が開いていると思います。 - 先ほど保存した
EC2
を選択し、Load
ボタンをクリックします。 Saved Sessions
にEC2
と表示されます。Open
ボタンをクリックします。- EC2インスタンスにログインできます。
- X11アプリケーションを起動します。
xeyes &
- Windowsのデスクトップ上に、
xeyes
等のX11アプリケーションが表示されます。
さいごに
ポートフォワーディングを設定すれば、EC2上で稼働するX11アプリケーションの画面を、手元にあるWindowsのデスクトップに表示させることが可能です。クラウドのメリットを活かし、必要なときに必要なだけ使用することができます。重い処理が必要なアプリケーションを一時的にEC2で実行できると、効率良く作業できます。